package com.atguigu.jxc.dao;


import com.atguigu.jxc.entity.Goods;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface GoodsMapper {
    //查询当前库存（可根据商品类别、商品编码或名称搜索）
    List<Goods> listInventory(@Param("page") Integer page,
                              @Param("rows")Integer rows,
                              @Param("codeOrName")String codeOrName,
                              @Param("goodsTypeId")Integer goodsTypeId);


    //添加
    void save(Goods goods);
//修改
    void update(Goods goods);

    //根据商品id进行查询
    Goods selectont(Integer goodsId);

    //删除商品
    void delete(Integer goodsId);

    //无库存商品列表展示（可以根据商品名称或编码查询）
    List<Goods> getNoInventoryQuantity(@Param("page") Integer page,
                                       @Param("rows")Integer rows,
                                       @Param("nameOrCode")String nameOrCode);

    //有库存商品列表展示（可以根据商品名称或编码查询）
    List<Goods> getHasInventoryQuantity(@Param("page") Integer page,
                                        @Param("rows")Integer rows,
                                        @Param("nameOrCode")String nameOrCode);

    //添加库存、修改数量或成本价
    void saveStock(
            @Param("goodsId")Integer goodsId,
            @Param("inventoryQuantity")Integer inventoryQuantity,
            @Param("purchasingPrice")double purchasingPrice);

    //查询所有 当前库存量 小于 库存下限的商品信息   库存报警
    List<Goods> listAlarm();
}
